/*
 * ============================================================================
 *                   GNU Lesser General Public License
 * ============================================================================
 *
 *
 *
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
 *
 *
 *
 */
package rad.framework.jaxr;

import javax.management.ObjectName;

import rad.framework.jmx.JMXUtil;

/**
 * This MBean service is a wrapper around JAXR for registering and discovery web
 * services.
 * 
 * @author boudyacho
 * @version 1.0
 */
public interface DiscoveryServiceMBean {

	public static final ObjectName OBJECT_NAME = JMXUtil
			.createObjectName("rad.framework:service=DiscoveryService");

	void setQueryUrl(String url);

	String getQueryUrl();

	void setPublishUrl(String url);

	String getPublishUrl();

	void setUserId(String id);

	String getUserId();

	void setPassword(String pPassword);

	String getPassword();

	void setTransportClass(String className);

	String getTransportClass();

	void setConnectionFactoryClass(String className);

	String getConnectionFactoryClass();

	void setBusinessEntity(String name);

	String getBusinessEntity();

	void register(String serviceName, String serviceNS, String portTypeName,
			String portTypeNS, String bindingName, String bindingNS,
			String accessPoint);

	void register(String url);

	String discover(String service);

	void changeAddress(String service, String address);

	void setAddressOverrideFileName(String name);

	String getAddressOverrideFileName();

	void create() throws Exception;

	void start() throws Exception;

	void stop();

	void destroy();
}
